package testes;

import static org.junit.Assert.*;

import java.util.LinkedList;
import java.util.List;


import org.bunny.businessLayer.CalendarDate;
import org.bunny.businessLayer.Equipa;
import org.bunny.businessLayer.Estadio;
import org.bunny.businessLayer.Grupo;
import org.bunny.businessLayer.Jogo;
import org.bunny.businessLayer.Pais;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class JogoTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
	}

	@After
	public void tearDown() throws Exception {
	}

	

	@Test
	public void testJogoCalendarDateStringGrupoEstadio() {
		CalendarDate cd = new CalendarDate(1, 1, 1990);
		Grupo g = new Grupo();
		Estadio es = new Estadio();
		Jogo jg = new Jogo(cd, "16", g, es);
		
		assertTrue(Jogo.allInstances.contains(jg));
		
		CalendarDate cd2 = new CalendarDate(5,7,2000);
		
		jg.setDia(cd2);
		assertEquals(cd2,jg.dia());
		
		Estadio es2 = new Estadio();
		jg.setEstadio(es2);
		assertEquals(es2,jg.estadio());
		
		Grupo g2 = new Grupo();
		jg.setGrupo(g2);
		assertEquals(g2,jg.grupo());
		
		String l = "18";
		jg.setHora(l);
		assertEquals(l,jg.hora());
		
		List<Equipa> equipas = new LinkedList<Equipa>();
		Equipa eq1 = new Equipa();
		Equipa eq2 = new Equipa();
		equipas.add(eq2);
		jg.setEquipa(equipas);
		assertEquals(equipas,jg.equipa());
		
		List<Pais> seleccao = new LinkedList<Pais>();
		Pais p1 = new Pais();
		Pais p2 = new Pais();
		seleccao.add(p2);
		jg.setSeleccao(seleccao);
		assertEquals(seleccao,jg.seleccao());
		
		Jogo jg2= new Jogo(cd, "16", g, es);
		assertEquals("Jogo [dia=" + cd + ", hora=" + 16 + ", grupo=" + g + ", estadio=" + es + "]\n", jg2.toString());
	}

}
